<?php

namespace Entities;

use Doctrine\ORM\Mapping as ORM;

/**
 * Entities\Investigation
 */
class Investigation
{
    /**
     * @var datetime $creation
     */
    private $creation;

    /**
     * @var text $comment
     */
    private $comment;

    /**
     * @var integer $id
     */
    private $id;

    /**
     * @var Entities\Tree
     */
    private $tree;

    /**
     * @var Entities\Employee
     */
    private $employee;

    /**
     * @var Entities\Qualification
     */
    private $qualification;

    /**
     * @var Entities\Health
     */
    private $health;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $crown;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $stem;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $root;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $defects;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $policies;

    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    private $recommendations;

    public function __construct()
    {
        $this->crown = new \Doctrine\Common\Collections\ArrayCollection();
        $this->stem = new \Doctrine\Common\Collections\ArrayCollection();
        $this->root = new \Doctrine\Common\Collections\ArrayCollection();
        $this->defects = new \Doctrine\Common\Collections\ArrayCollection();
        $this->policies = new \Doctrine\Common\Collections\ArrayCollection();
        $this->recommendations = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    /**
     * Set creation
     *
     * @param datetime $creation
     * @return Investigation
     */
    public function setCreation($creation)
    {
        $this->creation = $creation;
        return $this;
    }

    /**
     * Get creation
     *
     * @return datetime 
     */
    public function getCreation()
    {
        return $this->creation;
    }

    /**
     * Set comment
     *
     * @param text $comment
     * @return Investigation
     */
    public function setComment($comment)
    {
        $this->comment = $comment;
        return $this;
    }

    /**
     * Get comment
     *
     * @return text 
     */
    public function getComment()
    {
        return $this->comment;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set tree
     *
     * @param Entities\Tree $tree
     * @return Investigation
     */
    public function setTree(\Entities\Tree $tree = null)
    {
        $this->tree = $tree;
        return $this;
    }

    /**
     * Get tree
     *
     * @return Entities\Tree 
     */
    public function getTree()
    {
        return $this->tree;
    }

    /**
     * Set employee
     *
     * @param Entities\Employee $employee
     * @return Investigation
     */
    public function setEmployee(\Entities\Employee $employee = null)
    {
        $this->employee = $employee;
        return $this;
    }

    /**
     * Get employee
     *
     * @return Entities\Employee 
     */
    public function getEmployee()
    {
        return $this->employee;
    }

    /**
     * Set qualification
     *
     * @param Entities\Qualification $qualification
     * @return Investigation
     */
    public function setQualification(\Entities\Qualification $qualification = null)
    {
        $this->qualification = $qualification;
        return $this;
    }

    /**
     * Get qualification
     *
     * @return Entities\Qualification 
     */
    public function getQualification()
    {
        return $this->qualification;
    }

    /**
     * Set health
     *
     * @param Entities\Health $health
     * @return Investigation
     */
    public function setHealth(\Entities\Health $health = null)
    {
        $this->health = $health;
        return $this;
    }

    /**
     * Get health
     *
     * @return Entities\Health 
     */
    public function getHealth()
    {
        return $this->health;
    }

    /**
     * Add crown
     *
     * @param Entities\Crown $crown
     * @return Investigation
     */
    public function addCrown(\Entities\Crown $crown)
    {
        $this->crown[] = $crown;
        return $this;
    }

    /**
     * Get crown
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getCrown()
    {
        return $this->crown;
    }

    /**
     * Add stem
     *
     * @param Entities\Stem $stem
     * @return Investigation
     */
    public function addStem(\Entities\Stem $stem)
    {
        $this->stem[] = $stem;
        return $this;
    }

    /**
     * Get stem
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getStem()
    {
        return $this->stem;
    }

    /**
     * Add root
     *
     * @param Entities\Root $root
     * @return Investigation
     */
    public function addRoot(\Entities\Root $root)
    {
        $this->root[] = $root;
        return $this;
    }

    /**
     * Get root
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getRoot()
    {
        return $this->root;
    }

    /**
     * Add defects
     *
     * @param Entities\Defect $defects
     * @return Investigation
     */
    public function addDefect(\Entities\Defect $defects)
    {
        $this->defects[] = $defects;
        return $this;
    }

    /**
     * Get defects
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getDefects()
    {
        return $this->defects;
    }

    /**
     * Add policies
     *
     * @param Entities\Policy $policies
     * @return Investigation
     */
    public function addPolicy(\Entities\Policy $policies)
    {
        $this->policies[] = $policies;
        return $this;
    }

    /**
     * Get policies
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getPolicies()
    {
        return $this->policies;
    }

    /**
     * Add recommendations
     *
     * @param Entities\Recommendation $recommendations
     * @return Investigation
     */
    public function addRecommendation(\Entities\Recommendation $recommendations)
    {
        $this->recommendations[] = $recommendations;
        return $this;
    }

    /**
     * Get recommendations
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getRecommendations()
    {
        return $this->recommendations;
    }
}